package cn.zhejianglao.shirotemplate.service.role.service;

import cn.zhejianglao.shirotemplate.common.model.PagedResult;
import cn.zhejianglao.shirotemplate.common.model.RoleVO;
import cn.zhejianglao.shirotemplate.common.model.UserRoleVO;


public interface IRoleService {
    /**
     * 新增角色
     *
     * @param roleVO 角色对象
     */
    void create(RoleVO roleVO);

    /**
     * 删除角色
     *
     * @param roleId 角色id
     */
    void deleteRole(Long roleId);

    /**
     * 分页获取角色列表
     * @param size 单页数量
     * @param page 页码
     * @return 分页结果
     */
    PagedResult<RoleVO> listRoles(int size, int page);

    /**
     * 更新角色
     *
     * @param roleVO 角色
     */
    void updateRole(RoleVO roleVO);

    /**
     * 给用户授权角色
     *
     * @param relation 关系
     */
    void authorize(UserRoleVO relation);

    /**
     * 取消授权
     *
     * @param relation 关系
     */
    void cancelAuthorization(UserRoleVO relation);
}
